<?php
/**
 * Created by 项目.
 * User: xuguopeng
 * Date: 2019-11-28
 * Time: 09:07
 */

namespace app\api\controller\v1;

use app\api\model\Banner as BannerModel;
use app\api\model\BannerItem as BannerItemModel;
use think\facade\Request;

class Banner
{
    /**
     */
    public function getBanners()
    {
        $result = BannerModel::with('items.img')->select();
        return $result;
    }

    /**
     * @validate('IdMustBePositiveInt')
     */
    public function getBanner($id)
    {
        $result = BannerModel::where('id','=',$id)
            ->with('items.img')->find();
        return $result;
    }

    /**
     * @validate('IdMustBePositiveInt')
     */
    public function getBannerItem($id)
    {
        $result = BannerItemModel::where('id','=',$id)
            ->with('img')->find();
        return $result;
    }

    /**
     * 新增轮播图元素
     * @validate('BannerItemForm.add')
     */
    public function addBannerItem()
    {
        $data = Request::post('items');
        $bannerItem = new BannerItemModel;
        $bannerItem->allowField(true)->saveAll($data);
        return writeJson(201, [], '新增轮播图元素成功！');
    }

    /**
     * 编辑轮播图元素
     * @validate('BannerItemForm.edit')
     */
    public function editBannerItem()
    {
        $data = Request::put('items');
        $bannerItem = new BannerItemModel;
        # allowField(true)表示只允许写入数据表中存在的字段。
        # saveAll()接收一个数组，用于批量更新或者新增。通过判断传入的数组中是否设置了id属性，如果有则视为更新，无则视为新增
        $bannerItem->allowField(true)->saveAll($data);
        return writeJson(201, [], '编辑轮播图元素成功！');
    }

    /**
     * 删除轮播图元素
     * @param('ids','待删除的轮播图元素id列表','require|array|min:1')
     */
    public function delBannerItem()
    {
        $ids = Request::param('ids');
        // 传入多个id组成的数组进行批量删除
        BannerItemModel::destroy($ids);
        // 记录本次行为的日志
        //Hook::listen('logger', '删除了id为' . implode(',', $ids) . '的轮播图');
        return writeJson(201, [], '轮播图元素删除成功！');
    }
}